package com.fenyin.samples.study.jdk.datastruct.list;  

/**
 * 静态链表
 *@Author:fengzhichao  
 *@Since:2012-12-26  
 *@Version:1.1.0
 */
public class LindedStaticList<V> {
	
	private Entry[] datas;
	
	private int size;
	
	private int capation;
	
	public LindedStaticList(int capation){
		if(capation < 3){
			throw new IndexOutOfBoundsException("容量不能小于3");
		}
		this.capation = capation;
		datas = new Entry[capation];
		datas[0] = new Entry<V>(null,1);//备用链表头指针，空闲未使用的
		datas[capation-1] = new Entry<V>(null); //头指针，已存在元素的
		size = 0;
	}
	
	/**
	 * 表头插入元素
	 * 最坏时间复杂度=最好时间复杂度=O(1)
	 */
	public void addFirst(V e){
		
	}
	
	/**
	 * 表尾插入元素
	 * 最坏时间复杂度=O(n)
	 * 最好时间复杂度=O(1)
	 */
	public void addLast(V e){
		
	}
	
	/**
	 * 表头删除元素
	 * 最坏时间复杂度=最好时间复杂度=O(1)
	 */
	public void removeFirst(){
		
	}
	
	/**
	 * 表尾删除元素
	 * 最坏时间复杂度=O(n)
	 * 最好时间复杂度=O(1)
	 */
	public void removeLast(V e){
		
	}
	
	/**
	 * 获取指定位置的元素
	 * 最坏时间复杂度=O(n)
	 * 最好时间复杂度=O(1)
	 */
	public V get(int i){
		
		return null;
	}
	
	public int size(){
		return this.size;
	}
	
	
	static class Entry<V>{
		V value;
		int next;
		
		Entry(V value){
			this.value = value;
			next = Integer.MIN_VALUE;
		}
		
		Entry(V value,int next){
			this.value = value;
			this.next  = next;
		}
		
	}
	
	
}
